
abstract class Contents {
	abstract public int value();
}
interface Destination {
	String readLabel();
}
public class InnerClassTest3 {
	private class PContents extends Contents {
		private int i = 11;
		public int value() {
			return i;
		}

	}
	protected class PDestination implements Destination {
		private String label;
		private PDestination(String whereTo) {
			label = whereTo;
		}
		public String readLabel() {
			return label;
		}
	}
	public Destination dest(String s) {
		return new PDestination(s);
	}
	public Contents cont() {
		return new PContents();
	}
}
class Test {
	public static void main(String[] args) {
		InnerClassTest3 p = new InnerClassTest3();
		Contents c = p.cont();
		Destination d = p.dest("Tanzania");
		// Illegal -- can't access private class:
		// ! InnerClassTest3.PContents c = p.new PContents();
	}
}